了解从外部环境访问NodePort

您所在的位置:网站首页 nodeport port targetport 了解从外部环境访问NodePort

了解从外部环境访问NodePort

#了解从外部环境访问NodePort| 来源: 网络整理| 查看: 265

回答问题

我在https://kubernetes.io/docs/concepts/services-networking/service/阅读 k8s 文档。

NodePort:在每个节点的 IP 上的静态端口(NodePort)上公开服务。自动创建 NodePort 服务路由到的 ClusterIP 服务。 您可以通过请求 : 从集群外部联系 NodePort 服务。

所以,我试着实际检查它。在这个 LoadBalancer 服务中,端口 31724 是 NodePort,80 是容器端口。根据文档,NodePort 应该对外部世界开放,而容器端口不应该。但是使用 nmap,我发现相反的情况是正确的。

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE gen LoadBalancer 10.200.32.132 10.44.9.162,10.44.9.163 80:31724/TCP,443:30039 20d $ nmap -p 80 10.44.9.162 Starting Nmap 6.40 ( http://nmap.org ) at 2021-04-08 12:33 UTC mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-servers Nmap scan report for 10.44.9.162 Host is up (0.00061s latency). PORT STATE SERVICE 80/tcp open http Nmap done: 1 IP address (1 host up) scanned in 0.02 seconds $ nmap -p 31724 10.44.9.162 Starting Nmap 6.40 ( http://nmap.org ) at 2021-04-08 12:33 UTC mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-servers Nmap scan report for 10.44.9.162 Host is up (0.00044s latency). PORT STATE SERVICE 31724/tcp closed unknown Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds

我肯定错过了一些东西。请帮助我理解这一点。谢谢!

跟进:

我知道跟进应该是一个不同的问题,但它似乎是正确的地方。

我创建了一个 NodePort 服务并重试了它。正如描述中所说的那样。

object-controller-np NodePort 10.200.32.240 7203:31206/TCP 5s

节点IP

eth0: flags=4163 mtu 1500 inet 10.46.104.20 ... $ nmap -p 7203 10.46.104.20 Starting Nmap 6.40 ( http://nmap.org ) at 2021-04-09 07:01 UTC mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-servers Nmap scan report for 10.46.104.20 Host is up (0.00052s latency). PORT STATE SERVICE 7203/tcp closed unknown Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds $ nmap -p 31206 10.46.104.20 Starting Nmap 6.40 ( http://nmap.org ) at 2021-04-09 07:01 UTC mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-servers Nmap scan report for 10.46.104.20 Host is up (0.00050s latency). PORT STATE SERVICE 31206/tcp open unknown

早些时候我尝试过使用 LoadBalancer,因为我认为它是 NodePort 的一种超集。

问题:那么为什么 NodePort 类型服务和 LoadBalancer 类型服务中的 NodePort 行为完全相反。

从流行答案:

节点端口

如果您从节点的外部 IP 在 nodePort 上访问此服务,它会将请求路由到spec.clusterIp:spec.ports[*].port,如果已设置,它将依次路由到您的spec.ports[*].targetPort。该服务也可以通过与 ClusterIP 相同的方式访问。 ...

负载均衡器

您可以从负载均衡器的 IP 地址访问此服务,该地址将您的请求路由到 nodePort,然后将请求路由到 clusterIP 端口。

因此,对于 NodePort,请求如下所示:

NodeIP:NodePort -> ClusterIP:Port -> ClusterIP:TargetPort

Port上面是 yaml 中指定为port的端口,它在集群内的指定端口上公开 Kubernetes 服务。 TargetPort 是targetPort在 yaml 中指定的端口,服务将向该端口发送请求,您的 Pod 将在该端口上进行侦听。

对于 LoadBalancer,我期望的行为是:

ExternalLBIP:NodePort --(load-balanced across nodes)--> NodeIP:NodePort -> ClusterIP:Port -> ClusterIP:TargetPort

我看到的是:

ExternalLBIP:NodePort -> (doesn't work)

相反,有效的是:

ExternalLBIP:Port --(load-balanced across nodes)--> NodeIP:Port -> ClusterIP:Port -> ClusterIP:TargetPort Answers

您看到的是正确的,因为您使用nmap访问的 IP 是由LoadBalancer类型的服务创建的LoadBalancer的 IP,该 IP 意味着在 80(和/或 443)打开。而NodePort可以在运行 pod 和服务的工作节点的 IP 上访问。

您在此处部署的服务的类型是LoadBalancer而不是NodePort。

如需进一步阅读,请查看这个。

回答后续问题:

您在所期望的和实际有效的中提到的都是不正确的。

ExternalLBIP:NodePort:如果你查看你分享的帖子,可以通过访问,而不是使用 LB 的外部 IP。

ExternalLBIP:Port --(load-balanced across nodes)--> NodeIP:Port ->: LB 将请求路由到 NodePort,因此它将是NodeIP:NodePort。

至于你的问题,NodePort在 NodePort 类型服务和 LoadBalancer 类型服务中的行为并不相反。您只需要记住NodePort只能在NodeIP上访问。

在服务类型NodePort中:

NodeIP:NodePort -> ClusterIP:Port -> Pod:TargetPort

在服务类型LoadBalancer中:

zoz100036

例如。从LoadBalancer类型的正在运行的服务:

kubectl get svc -n NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE -********** LoadBalancer 172.20.96.130 a4b63c833c2***************d4-1996967498..elb.amazonaws.com 8443:31010/TCP 8m49s

正如您在下面的代码片段中看到的,请求将从LB Port to NodePort转发。

ELB 的监听器



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3